package com.lgj.tlias.utils;



import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.apache.logging.log4j.message.StringFormattedMessage;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class JwtUtils {
    private static final String signKey = "jinge";
    // 密钥是一个 Base64 编码的字符串
    // 过期时间，单位为毫秒（1天）
    private static final Long expiration = 24 * 60 * 60 * 1000L;  // 一天的毫秒数
    //生成JWT令牌
    public static String CreateJWT(Map<String, Object> claims){
        String jwt = Jwts.builder()
                .setClaims(claims)  // 自定义内容（也叫载荷）
                .signWith(SignatureAlgorithm.HS256,signKey)      // 使用密钥进行签名
                .setIssuedAt(new Date())  // 设置签发时间
                .setExpiration(new Date(System.currentTimeMillis() + expiration))  // 设置过期时间
                .compact();  // 生成 JWT 令牌
        return jwt;
    }
    //解析JWT令牌
    public static Claims parseJWT(String jwt){
        Claims claims=Jwts.parser()
                .setSigningKey(signKey)//和上面对应
                .parseClaimsJws(jwt)  //解析的jwt令牌
                .getBody();             //获取数据部分
        return claims;
    }

}
